package com.xjd.edu.toolkit.helper;

import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.util.Assert;

/**
 * 查询结果集长度超限监控
 *
 * @author wangyu
 * @since 2023/3/17
 */
public class QueryOverflowHelper {

    /**
     * 查询超限度量，目前用于监控查询结果集超过10000的CP查询（用于Redis时为查询返回超过1000）
     *
     * @param registry 非空
     * @param type     非空
     * @param id       非空
     */
    public static void measure(MeterRegistry registry, Type type, String id) {
        Assert.notNull(registry, "参数 registry 不能为空");
        Assert.notNull(type, "参数 type 不能为空");
        Assert.notNull(id, "参数 id 不能为空");

        registry.counter("game.page.overflow", "type", type.name().toLowerCase(), "id", id).increment();
    }

    public enum Type {
        MYSQL, ES, MONGO, REDIS
    }

}
